﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Collections;
using DTO;
namespace DAO
{
    public class CNGUOIDUNGDAO : AbstractDao
    {
        //Lấy thông tin 1 người dùng bất kỳ
        public static CNGUOIDUNGDTO LayThongTinNguoiDung(int MaNguoiDung)
        {
            CNGUOIDUNGDTO nguoidungDto = new CNGUOIDUNGDTO();
            OleDbConnection cn = new OleDbConnection();
            cn = CNGUOIDUNGDAO.ConnectionData();
            string strSQL = "Select* From NGUOIDUNG where MaNguoiDung=" + MaNguoiDung.ToString();
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                nguoidungDto.MaNguoiDung = int.Parse(myReader[0].ToString());
                nguoidungDto.TenDangNhap = myReader[1].ToString();
                nguoidungDto.MatKhau = myReader[2].ToString();
                nguoidungDto.TenNguoiDung = myReader[3].ToString();
                nguoidungDto.NgaySinh = DateTime.Parse(myReader[4].ToString());
                nguoidungDto.CMND = myReader[5].ToString();
                nguoidungDto.DiaChi = myReader[6].ToString();
                nguoidungDto.DienThoai = myReader[7].ToString();
                nguoidungDto.GioiTinh = myReader[8].ToString();
                nguoidungDto.TinhTrang = bool.Parse(myReader[9].ToString());
                nguoidungDto.MaLoaiNguoiDung = int.Parse(myReader[10].ToString());
            }
            myReader.Close();
            cn.Close();
            return nguoidungDto;
        }
        // Hàm lấy danh sách tất cả người dùng
        //public static List<CNGUOIDUNGDTO> LayDanhSachNguoiDung()
        //{
        //    List<CNGUOIDUNGDTO> ds = new List<CNGUOIDUNGDTO>();
        //    OleDbConnection cn = new OleDbConnection();
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    String strSQL = "Select * From NGUOIDUNG";
        //    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
        //    OleDbDataReader myReader = cmd.ExecuteReader();
        //    while (myReader.Read())
        //    {
        //        CNGUOIDUNGDTO nguoidungDto = new CNGUOIDUNGDTO();
        //        nguoidungDto.MaNguoiDung = int.Parse(myReader[0].ToString());
        //        nguoidungDto.TenDangNhap = myReader[1].ToString();
        //        nguoidungDto.MatKhau = myReader[2].ToString();
        //        nguoidungDto.TenNguoiDung = myReader[3].ToString();
        //        nguoidungDto.NgaySinh = DateTime.Parse(myReader[4].ToString());
        //        nguoidungDto.CMND = myReader[5].ToString();
        //        nguoidungDto.DiaChi = myReader[6].ToString();
        //        nguoidungDto.DienThoai = myReader[7].ToString();
        //        nguoidungDto.GioiTinh = myReader[8].ToString();
        //        nguoidungDto.TinhTrang = bool.Parse(myReader[9].ToString());
        //        nguoidungDto.MaLoaiNguoiDung = int.Parse(myReader[10].ToString());
        //        ds.Add(nguoidungDto);
        //    }
        //    myReader.Close();
        //    cn.Close();
        //    return ds;
        //}
        ////hàm này không tổng quát khi mã loại tiếp tân thay đổi
        ////lấy danh sách tiếp tân
        ////public static List<CNGUOIDUNGDTO> LayDanhSachTiepTan()
        ////{
        ////    List<CNGUOIDUNGDTO> ds = new List<CNGUOIDUNGDTO>();
        ////    OleDbConnection cn = new OleDbConnection();
        ////    cn = CNGUOIDUNGDAO.ConnectionData();
        ////    String strSQL = "Select * From NGUOIDUNG WHERE   MaLoaiNguoiDung=7";
        ////    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
        ////    OleDbDataReader myReader = cmd.ExecuteReader();
        ////    while (myReader.Read())
        ////    {
        ////        CNGUOIDUNGDTO nguoidungDto = new CNGUOIDUNGDTO();
        ////        nguoidungDto.MaNguoiDung = int.Parse(myReader[0].ToString());
        ////        nguoidungDto.TenDangNhap = myReader[1].ToString();
        ////        nguoidungDto.MatKhau = myReader[2].ToString();
        ////        nguoidungDto.TenNguoiDung = myReader[3].ToString();
        ////        nguoidungDto.NgaySinh = DateTime.Parse(myReader[4].ToString());
        ////        nguoidungDto.CMND = myReader[5].ToString();
        ////        nguoidungDto.DiaChi = myReader[6].ToString();
        ////        nguoidungDto.DienThoai = myReader[7].ToString();
        ////        nguoidungDto.GioiTinh = myReader[8].ToString();
        ////        nguoidungDto.TinhTrang = bool.Parse(myReader[9].ToString());
        ////        nguoidungDto.MaLoaiNguoiDung = int.Parse(myReader[10].ToString());
        ////        ds.Add(nguoidungDto);
        ////    }
        ////    myReader.Close();
        ////    cn.Close();
        ////    return ds;
        ////}

        //// Hàm lấy danh sách tất cả người dùng đã đánh dấu xóa dùng để xử lý
        //public static List<CNGUOIDUNGDTO> LayDanhSachNguoiDungDaDanhDauXoa()
        //{
        //    List<CNGUOIDUNGDTO> ds = new List<CNGUOIDUNGDTO>();
        //    OleDbConnection cn = new OleDbConnection();
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    String strSQL = "Select * From NGUOIDUNG where TinhTrang=true";
        //    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
        //    OleDbDataReader myReader = cmd.ExecuteReader();
        //    while (myReader.Read())
        //    {
        //        CNGUOIDUNGDTO nguoidungDto = new CNGUOIDUNGDTO();
        //        nguoidungDto.MaNguoiDung = int.Parse(myReader[0].ToString());
        //        nguoidungDto.TenDangNhap = myReader[1].ToString();
        //        nguoidungDto.MatKhau = myReader[2].ToString();
        //        nguoidungDto.TenNguoiDung = myReader[3].ToString();
        //        nguoidungDto.NgaySinh = DateTime.Parse(myReader[4].ToString());
        //        nguoidungDto.CMND = myReader[5].ToString();
        //        nguoidungDto.DiaChi = myReader[6].ToString();
        //        nguoidungDto.DienThoai = myReader[7].ToString();
        //        nguoidungDto.GioiTinh = myReader[8].ToString();
        //        nguoidungDto.TinhTrang = bool.Parse(myReader[9].ToString());
        //        nguoidungDto.MaLoaiNguoiDung = int.Parse(myReader[10].ToString());
        //        ds.Add(nguoidungDto);
        //    }
        //    myReader.Close();
        //    cn.Close();
        //    return ds;
        //}
        // Hàm lấy danh sách tất cả người dùng chưa đánh dấu xóa dùng để xử lý
        public static List<CNGUOIDUNGDTO> LayDanhSachNguoiDungChuaDanhDauXoa()
        {
            List<CNGUOIDUNGDTO> ds = new List<CNGUOIDUNGDTO>();
            OleDbConnection cn = new OleDbConnection();
            cn = CNGUOIDUNGDAO.ConnectionData();
            String strSQL = "Select * From NGUOIDUNG where TinhTrang=false";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                CNGUOIDUNGDTO nguoidungDto = new CNGUOIDUNGDTO();
                nguoidungDto.MaNguoiDung = int.Parse(myReader[0].ToString());
                nguoidungDto.TenDangNhap = myReader[1].ToString();
                nguoidungDto.MatKhau = myReader[2].ToString();
                nguoidungDto.TenNguoiDung = myReader[3].ToString();
                nguoidungDto.NgaySinh = DateTime.Parse(myReader[4].ToString());
                nguoidungDto.CMND = myReader[5].ToString();
                nguoidungDto.DiaChi = myReader[6].ToString();
                nguoidungDto.DienThoai = myReader[7].ToString();
                nguoidungDto.GioiTinh = myReader[8].ToString();
                nguoidungDto.TinhTrang = bool.Parse(myReader[9].ToString());
                nguoidungDto.MaLoaiNguoiDung = int.Parse(myReader[10].ToString());
                ds.Add(nguoidungDto);
            }
            myReader.Close();
            cn.Close();
            return ds;
        }
        ////Hàm lấy toàn bộ thông tin của tất cả người dùng lưu trong csdl đổ vào 1 bảng chỉ hiện ra trên giao diện nhưng không dùg xử lý được
        //public static DataTable LayBang()
        //{
        //    DataTable dt = new DataTable();
        //    OleDbConnection cn;
        //    //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    //B3: Tao chuoi strSQL thao tac CSDL
        //    String strSQL;
        //    strSQL = "Select * From NGUOIDUNG";
        //    //B4: Thuc thi chuoi strSQL
        //    OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
        //    da.Fill(dt);
        //    //B5: Dong ket noi CSDL
        //    cn.Close();
        //    return dt;
        //}
        ////Hàm kết hai bảng người dùng và loại người dùng, lấy ra 1 số thông tin của tất cả các người dùng
        ////đổ vào vào 1 bảng chỉ hiện ra trên giao diện, không dùng để xử lý
        //public static DataTable LayBangNguoiDung()
        //{
        //    DataTable dt = new DataTable();
        //    OleDbConnection cn;
        //    //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    //B3: Tao chuoi strSQL thao tac CSDL
        //    String strSQL;
        //    strSQL = "Select NGUOIDUNG.TenDangNhap,NGUOIDUNG.TenNguoiDung,NGUOIDUNG.NgaySinh,NGUOIDUNG.CMND,NGUOIDUNG.DiaChi,NGUOIDUNG.DienThoai,NGUOIDUNG.GioiTinh,LOAINGUOIDUNG.TenLoaiNguoiDung,NGUOIDUNG.TinhTrang From NGUOIDUNG,LOAINGUOIDUNG Where NGUOIDUNG.MaLoaiNguoiDung=LOAINGUOIDUNG.MaLoaiNguoiDung";
        //    //B4: Thuc thi chuoi strSQL
        //    OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
        //    da.Fill(dt);
        //    //B5: Dong ket noi CSDL
        //    cn.Close();
        //    return dt;
        //}
        ////Hàm kết hai bảng người dùng và loại người dùng .Lấy ra một số thông tin các người dùng đã đánh dấu xóa 
        //public static DataTable LayBangNguoiDungDaDanhDauXoa()
        //{
        //    DataTable dt = new DataTable();
        //    OleDbConnection cn;
        //    //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    //B3: Tao chuoi strSQL thao tac CSDL
        //    String strSQL;
        //    strSQL = "Select NGUOIDUNG.TenDangNhap,NGUOIDUNG.TenNguoiDung,NGUOIDUNG.NgaySinh,NGUOIDUNG.CMND,NGUOIDUNG.DiaChi,NGUOIDUNG.DienThoai,NGUOIDUNG.GioiTinh,LOAINGUOIDUNG.TenLoaiNguoiDung,NGUOIDUNG.TinhTrang From NGUOIDUNG,LOAINGUOIDUNG Where NGUOIDUNG.MaLoaiNguoiDung=LOAINGUOIDUNG.MaLoaiNguoiDung and NGUOIDUNG.TinhTrang=true";
        //    //B4: Thuc thi chuoi strSQL
        //    OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
        //    da.Fill(dt);
        //    //B5: Dong ket noi CSDL
        //    cn.Close();
        //    return dt;
        //}
        ////Hàm kết hai bảng người dùng và loại người dùng.Lấy ra một số thông tin các người dùng chưa đánh dấu xóa 
        public static DataTable LayBangNguoiDungChuaDanhDauXoa()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CNGUOIDUNGDAO.ConnectionData();
            ////'B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select NGUOIDUNG.TenDangNhap,NGUOIDUNG.TenNguoiDung,NGUOIDUNG.NgaySinh,NGUOIDUNG.CMND,NGUOIDUNG.DiaChi,NGUOIDUNG.DienThoai,NGUOIDUNG.GioiTinh,LOAINGUOIDUNG.TenLoaiNguoiDung,NGUOIDUNG.TinhTrang From NGUOIDUNG,LOAINGUOIDUNG Where NGUOIDUNG.MaLoaiNguoiDung=LOAINGUOIDUNG.MaLoaiNguoiDung and NGUOIDUNG.TinhTrang=false";
            ////'B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            ////'B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        //public static DataTable LayBangNguoiDungTheoLoaiNguoiDung(int MaLoaiNguoiDung)
        //{
        //    DataTable dt = new DataTable();
        //    OleDbConnection cn;
        //    //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    ////'B3: Tao chuoi strSQL thao tac CSDL
        //    String strSQL;
        //    strSQL = "Select TenDangNhap,TenNguoiDung,NGUOIDUNG.NgaySinh,CMND,DiaChi,DienThoai,GioiTinh,TinhTrang From NGUOIDUNG Where MaLoaiNguoiDung=" + MaLoaiNguoiDung.ToString();
        //    ////'B4: Thuc thi chuoi strSQL
        //    OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
        //    da.Fill(dt);
        //    ////'B5: Dong ket noi CSDL
        //    cn.Close();
        //    return dt;
        //}
        ////Thêm người dùng
        //public void ThemNguoiDung(CNGUOIDUNGDTO nguoidungDto)
        //{
        //    OleDbConnection cn;
        //    //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    String strSQL = "Insert into NGUOIDUNG(TenDangNhap,MatKhau,TenNguoiDung,NgaySinh,CMND,DiaChi,DienThoai,GioiTinh,TinhTrang,MaLoaiNguoiDung) values (?,?,?,?,?,?,?,?,?,?)";
        //    OleDbCommand cmd = new OleDbCommand(strSQL, cn);

        //    cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);
        //    cmd.Parameters.Add("@MatKhau", OleDbType.WChar);
        //    cmd.Parameters.Add("@TenNguoiDung", OleDbType.WChar);
        //    cmd.Parameters.Add("@NgaySinh", OleDbType.Date);
        //    cmd.Parameters.Add("@CMND", OleDbType.WChar);
        //    cmd.Parameters.Add("@DiaChi", OleDbType.WChar);
        //    cmd.Parameters.Add("@DienThoai", OleDbType.WChar);
        //    cmd.Parameters.Add("@GioiTinh", OleDbType.WChar);
        //    cmd.Parameters.Add("@TinhTrang", OleDbType.Boolean);
        //    cmd.Parameters.Add("@MaLoaiNguoiDung", OleDbType.Integer);
        //    cmd.Parameters[0].Value = nguoidungDto.TenDangNhap;
        //    cmd.Parameters[1].Value = nguoidungDto.MatKhau;
        //    cmd.Parameters[2].Value = nguoidungDto.TenNguoiDung;
        //    cmd.Parameters[3].Value = nguoidungDto.NgaySinh;
        //    cmd.Parameters[4].Value = nguoidungDto.CMND;
        //    cmd.Parameters[5].Value = nguoidungDto.DiaChi;
        //    cmd.Parameters[6].Value = nguoidungDto.DienThoai;
        //    cmd.Parameters[7].Value = nguoidungDto.GioiTinh;
        //    cmd.Parameters[8].Value = nguoidungDto.TinhTrang;
        //    cmd.Parameters[9].Value = nguoidungDto.MaLoaiNguoiDung;
        //    cmd.ExecuteNonQuery();
        //    //strSQL = "Select @@IDENTITY";
        //    ////cmd = new OleDbCommand(strSQL, cn);
        //    ////lndDto.MaLoaiNguoiDung = (int)cmd.ExecuteScalar();
        //    cn.Close();
        //}

        ////Hàm đánh dấu xóa người dùng tạm thời hoặc phục hồi lại
        //public static void CapNhatTinhTrangNguoiDung(int MaNguoiDung, bool TinhTrang)
        //{
        //    OleDbConnection cn;
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    string strSQL = "UPDATE NGUOIDUNG SET TinhTrang=? WHERE (MaNguoiDung=?)";
        //    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
        //    cmd.Parameters.Add("@TinhTrang", OleDbType.Boolean);
        //    cmd.Parameters.Add("@MaNguoiDung", OleDbType.Integer);
        //    cmd.Parameters[0].Value = TinhTrang;
        //    cmd.Parameters[1].Value = MaNguoiDung;
        //    cmd.ExecuteNonQuery();
        //    cn.Close();
        //}
        ////Hàm xóa vĩnh viễn ngươi dùng
        //public static void XoaNguoiDung(int MaNguoiDung)
        //{
        //    //Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
        //    OleDbConnection cn;
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    // chuoi strSQL thao tac CSDL
        //    String strSQL = "DELETE FROM NGUOIDUNG WHERE MaNguoiDung=?";
        //    //B4: Thuc thi chuoi strSQL
        //    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
        //    //add vao cmd để tránh bị sai sót khi gán thuộc tính bằng 1 giá trị cụ thể
        //    cmd.Parameters.Add("@MaNguoiDung", OleDbType.Integer);
        //    cmd.Parameters[0].Value = MaNguoiDung;
        //    cmd.ExecuteNonQuery();
        //    //đóng kết nối
        //    cn.Close();
        //}
        //Hàm cập nhật 1 số thông tin của người dùng
        public void CapNhatThongTinNguoiDung(CNGUOIDUNGDTO nguoidungDto)
        {
            OleDbConnection cn;
            cn = CNGUOIDUNGDAO.ConnectionData();
            String strSQL = "UPDATE NGUOIDUNG SET TenNguoiDung=?,NgaySinh=?,CMND=?,DiaChi=?,DienThoai=?,GioiTinh=?,MaLoaiNguoiDung=? WHERE  (MaNguoiDung = ?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@TenNguoiDung", OleDbType.WChar);
            cmd.Parameters.Add("@NgaySinh", OleDbType.Date);
            cmd.Parameters.Add("@CMND", OleDbType.WChar);
            cmd.Parameters.Add("@DiaChi", OleDbType.WChar);
            cmd.Parameters.Add("@DienThoai", OleDbType.WChar);
            cmd.Parameters.Add("@GioiTinh", OleDbType.WChar);
            cmd.Parameters.Add("@MaLoaiNguoiDung", OleDbType.Integer);
            cmd.Parameters.Add("@MaNguoiDung", OleDbType.Integer);
            cmd.Parameters[0].Value = nguoidungDto.TenNguoiDung;
            cmd.Parameters[1].Value = nguoidungDto.NgaySinh;
            cmd.Parameters[2].Value = nguoidungDto.CMND;
            cmd.Parameters[3].Value = nguoidungDto.DiaChi;
            cmd.Parameters[4].Value = nguoidungDto.DienThoai;
            cmd.Parameters[5].Value = nguoidungDto.GioiTinh;
            cmd.Parameters[6].Value = nguoidungDto.MaLoaiNguoiDung;
            cmd.Parameters[7].Value = nguoidungDto.MaNguoiDung;
            cmd.ExecuteNonQuery();
            cn.Close();
        }
        //Hàm cập nhật đầy đủ thông tin người dùng
        //public void CapNhatThongTinNguoiDung(CNGUOIDUNGDTO nguoidungDto)
        //{
        //    OleDbConnection cn;
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    String strSQL = "UPDATE NGUOIDUNG SET TenDangNhap=?,MatKhau=?,TenNguoiDung=?,NgaySinh=?,CMND=?,DiaChi=?,DienThoai=?,GioiTinh=?,TinhTrang=?,MaLoaiNguoiDung=? WHERE  (MaNguoiDung = ?)";
        //    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
        //    cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);
        //    cmd.Parameters.Add("@MatKhau", OleDbType.WChar);
        //    cmd.Parameters.Add("@TenNguoiDung", OleDbType.WChar);
        //    cmd.Parameters.Add("@NgaySinh", OleDbType.Date);
        //    cmd.Parameters.Add("@CMND", OleDbType.WChar);
        //    cmd.Parameters.Add("@DiaChi", OleDbType.WChar);
        //    cmd.Parameters.Add("@DienThoai", OleDbType.WChar);
        //    cmd.Parameters.Add("@GioiTinh", OleDbType.WChar);
        //    cmd.Parameters.Add("@TinhTrang", OleDbType.Boolean);
        //    cmd.Parameters.Add("@MaLoaiNguoiDung", OleDbType.Integer);
        //    cmd.Parameters.Add("@MaNguoiDung", OleDbType.Integer);
        //    cmd.Parameters[0].Value = nguoidungDto.TenDangNhap;
        //    cmd.Parameters[1].Value = nguoidungDto.MatKhau;
        //    cmd.Parameters[2].Value = nguoidungDto.TenNguoiDung;
        //    cmd.Parameters[3].Value = nguoidungDto.NgaySinh;
        //    cmd.Parameters[4].Value = nguoidungDto.CMND;
        //    cmd.Parameters[5].Value = nguoidungDto.DiaChi;
        //    cmd.Parameters[6].Value = nguoidungDto.DienThoai;
        //    cmd.Parameters[7].Value = nguoidungDto.GioiTinh;
        //    cmd.Parameters[8].Value = nguoidungDto.TinhTrang;
        //    cmd.Parameters[9].Value = nguoidungDto.MaLoaiNguoiDung;
        //    cmd.Parameters[10].Value = nguoidungDto.MaNguoiDung;
        //    cmd.ExecuteNonQuery();
        //    cn.Close();
        //}
        //lấy bảng tiếp tân
        //public static DataTable LayBangTiepTan()
        //{
        //    DataTable dt = new DataTable();
        //    OleDbConnection cn;
        //    //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    //B3: Tao chuoi strSQL thao tac CSDL
        //    String strSQL;
        //    strSQL = "Select NGUOIDUNG.TenDangNhap,NGUOIDUNG.TenNguoiDung,NGUOIDUNG.NgaySinh,NGUOIDUNG.CMND,NGUOIDUNG.DiaChi,NGUOIDUNG.DienThoai,NGUOIDUNG.GioiTinh,NGUOIDUNG.TinhTrang,LOAINGUOIDUNG.TenLoaiNguoiDung,LOAINGUOIDUNG.MaLoaiNguoiDung From NGUOIDUNG,LOAINGUOIDUNG Where NGUOIDUNG.MaLoaiNguoiDung=LOAINGUOIDUNG.MaLoaiNguoiDung and NGUOIDUNG.MaLoaiNguoiDung=7";
        //    //B4: Thuc thi chuoi strSQL
        //    OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
        //    da.Fill(dt);
        //    //B5: Dong ket noi CSDL
        //    cn.Close();
        //    return dt;
        //}
        //public static void XoaNguoiDung1(string TenDangNhap)
        //{
        //    //Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
        //    OleDbConnection cn;
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    // chuoi strSQL thao tac CSDL
        //    String strSQL = "DELETE FROM NGUOIDUNG WHERE TenDangNhap=?";
        //    //B4: Thuc thi chuoi strSQL
        //    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
        //    //add vao cmd để tránh bị sai sót khi gán thuộc tính bằng 1 giá trị cụ thể
        //    cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);
        //    cmd.Parameters[0].Value = TenDangNhap;
        //    cmd.ExecuteNonQuery();
        //    //đóng kết nối
        //    cn.Close();
        //}
        //ham cap nhat mat khau nguoi dung
        public static void CapNhatMatKhau(CNGUOIDUNGDTO nguoidungDto)
        {
            OleDbConnection cn;
            cn = CNGUOIDUNGDAO.ConnectionData();
            String strSQL = "UPDATE NGUOIDUNG SET MatKhau=? WHERE  (TenDangNhap = ?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);

            cmd.Parameters.Add("@MatKhau", OleDbType.WChar);
            cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);

            cmd.Parameters[0].Value = nguoidungDto.MatKhau;
            cmd.Parameters[1].Value = nguoidungDto.TenDangNhap;
            cmd.ExecuteNonQuery();
            cn.Close();
        }
        // Hàm lấy danh sách tất cả người dùng
        public static List<CNGUOIDUNGDTO> LayDanhSachNguoiDungTheoLoaiNguoiDung(int maLoaiNguoiDung)
        {
            List<CNGUOIDUNGDTO> ds = new List<CNGUOIDUNGDTO>();
            OleDbConnection cn = new OleDbConnection();
            cn = CNGUOIDUNGDAO.ConnectionData();
            String strSQL = "Select * From NGUOIDUNG where TinhTrang=false and MaLoaiNguoiDung="+maLoaiNguoiDung.ToString();
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                CNGUOIDUNGDTO nguoidungDto = new CNGUOIDUNGDTO();
                nguoidungDto.MaNguoiDung = int.Parse(myReader[0].ToString());
                nguoidungDto.TenDangNhap = myReader[1].ToString();
                nguoidungDto.MatKhau = myReader[2].ToString();
                nguoidungDto.TenNguoiDung = myReader[3].ToString();
                nguoidungDto.NgaySinh = DateTime.Parse(myReader[4].ToString());
                nguoidungDto.CMND = myReader[5].ToString();
                nguoidungDto.DiaChi = myReader[6].ToString();
                nguoidungDto.DienThoai = myReader[7].ToString();
                nguoidungDto.GioiTinh = myReader[8].ToString();
                nguoidungDto.TinhTrang = bool.Parse(myReader[9].ToString());
                nguoidungDto.MaLoaiNguoiDung = int.Parse(myReader[10].ToString());
                ds.Add(nguoidungDto);
            }
            myReader.Close();
            cn.Close();
            return ds;
        }

        ///NGUYÊN




        //lấy bảng tiếp tân
        public static DataTable LayBangTiepTan()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CNGUOIDUNGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select NGUOIDUNG.TenDangNhap,NGUOIDUNG.TenNguoiDung,NGUOIDUNG.NgaySinh,NGUOIDUNG.CMND,NGUOIDUNG.DiaChi,NGUOIDUNG.DienThoai,NGUOIDUNG.GioiTinh,NGUOIDUNG.TinhTrang,LOAINGUOIDUNG.TenLoaiNguoiDung,LOAINGUOIDUNG.MaLoaiNguoiDung From NGUOIDUNG,LOAINGUOIDUNG Where NGUOIDUNG.MaLoaiNguoiDung=LOAINGUOIDUNG.MaLoaiNguoiDung and NGUOIDUNG.MaLoaiNguoiDung=7";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        public static void XoaNguoiDung1(string TenDangNhap)
        {
            //Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            OleDbConnection cn;
            cn = CNGUOIDUNGDAO.ConnectionData();
            // chuoi strSQL thao tac CSDL
            String strSQL = "DELETE FROM NGUOIDUNG WHERE TenDangNhap=?";
            //B4: Thuc thi chuoi strSQL
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            //add vao cmd để tránh bị sai sót khi gán thuộc tính bằng 1 giá trị cụ thể
            cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);
            cmd.Parameters[0].Value = TenDangNhap;
            cmd.ExecuteNonQuery();
            //đóng kết nối
            cn.Close();
        }
        ////ham cap nhat mat khau nguoi dung
        //public static void CapNhatMatKhau(CNGUOIDUNGDTO nguoidungDto)
        //{
        //    OleDbConnection cn;
        //    cn = CNGUOIDUNGDAO.ConnectionData();
        //    String strSQL = "UPDATE NGUOIDUNG SET MatKhau=? WHERE  (TenDangNhap = ?)";
        //    OleDbCommand cmd = new OleDbCommand(strSQL, cn);

        //    cmd.Parameters.Add("@MatKhau", OleDbType.WChar);
        //    cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);

        //    cmd.Parameters[0].Value = nguoidungDto.MatKhau;
        //    cmd.Parameters[1].Value = nguoidungDto.TenDangNhap;
        //    cmd.ExecuteNonQuery();
        //    cn.Close();
        //}

        ///////NGUYÊN/////////
        //LẤY BẢNG NGƯỜI DÙNG
        public static DataTable LayBangNguoiDung1()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CNGUOIDUNGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select NGUOIDUNG.TenDangNhap,NGUOIDUNG.TenNguoiDung,NGUOIDUNG.MaLoaiNguoiDung,NGUOIDUNG.MaNguoiDung,NGUOIDUNG.NgaySinh,NGUOIDUNG.CMND,NGUOIDUNG.DiaChi,NGUOIDUNG.DienThoai,NGUOIDUNG.GioiTinh,LOAINGUOIDUNG.TenLoaiNguoiDung,NGUOIDUNG.TinhTrang From NGUOIDUNG,LOAINGUOIDUNG Where NGUOIDUNG.MaLoaiNguoiDung=LOAINGUOIDUNG.MaLoaiNguoiDung and NGUOIDUNG.TinhTrang=false";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        //cập nhật thông tin người dùng không cập nhật mật khẩu
        public static void CapNhatThongTinNguoiDung1(CNGUOIDUNGDTO nguoidungDto)
        {
            OleDbConnection cn;
            cn = CNGUOIDUNGDAO.ConnectionData();
            String strSQL = "UPDATE NGUOIDUNG SET TenDangNhap=?,TenNguoiDung=?,NgaySinh=?,CMND=?,DiaChi=?,DienThoai=?,GioiTinh=?,MaLoaiNguoiDung=? WHERE  (TenDangNhap = ?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);

            cmd.Parameters.Add("@TenNguoiDung", OleDbType.WChar);
            cmd.Parameters.Add("@NgaySinh", OleDbType.Date);
            cmd.Parameters.Add("@CMND", OleDbType.WChar);
            cmd.Parameters.Add("@DiaChi", OleDbType.WChar);
            cmd.Parameters.Add("@DienThoai", OleDbType.WChar);
            cmd.Parameters.Add("@GioiTinh", OleDbType.WChar);
            cmd.Parameters.Add("@MaLoaiNguoiDung", OleDbType.Integer);
            cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);
            cmd.Parameters[0].Value = nguoidungDto.TenDangNhap;

            cmd.Parameters[1].Value = nguoidungDto.TenNguoiDung;
            cmd.Parameters[2].Value = nguoidungDto.NgaySinh;
            cmd.Parameters[3].Value = nguoidungDto.CMND;
            cmd.Parameters[4].Value = nguoidungDto.DiaChi;
            cmd.Parameters[5].Value = nguoidungDto.DienThoai;
            cmd.Parameters[6].Value = nguoidungDto.GioiTinh;
            cmd.Parameters[7].Value = nguoidungDto.MaLoaiNguoiDung;
            cmd.Parameters[8].Value = nguoidungDto.TenDangNhap;
            cmd.ExecuteNonQuery();
            cn.Close();
        }
        //hàm cập nhật tình trạng của một người dùng
        public static void CapNhatTinhTrangNguoiDung1(CNGUOIDUNGDTO nguoiDung)
        {
            OleDbConnection cn;
            cn = CNGUOIDUNGDAO.ConnectionData();
            string strSQL = "UPDATE NGUOIDUNG SET TinhTrang=? WHERE (TenDangNhap=?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@TinhTrang", OleDbType.Boolean);
            cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);
            cmd.Parameters[0].Value = true;
            cmd.Parameters[1].Value = nguoiDung.TenDangNhap;
            cmd.ExecuteNonQuery();
            cn.Close();
        }

        //lay thong tin giam doc
        public static DataTable LayBangGiamDoc()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CNGUOIDUNGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select NGUOIDUNG.TenDangNhap,NGUOIDUNG.TenNguoiDung,NGUOIDUNG.NgaySinh,NGUOIDUNG.CMND,NGUOIDUNG.DiaChi,NGUOIDUNG.DienThoai,NGUOIDUNG.GioiTinh,NGUOIDUNG.TinhTrang,LOAINGUOIDUNG.TenLoaiNguoiDung,LOAINGUOIDUNG.MaLoaiNguoiDung From NGUOIDUNG,LOAINGUOIDUNG Where NGUOIDUNG.MaLoaiNguoiDung=LOAINGUOIDUNG.MaLoaiNguoiDung and NGUOIDUNG.MaLoaiNguoiDung=5";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        //lay thong tin quan tri
        public static DataTable LayBangQuanTri()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CNGUOIDUNGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select NGUOIDUNG.TenDangNhap,NGUOIDUNG.TenNguoiDung,NGUOIDUNG.NgaySinh,NGUOIDUNG.CMND,NGUOIDUNG.DiaChi,NGUOIDUNG.DienThoai,NGUOIDUNG.GioiTinh,NGUOIDUNG.TinhTrang,LOAINGUOIDUNG.TenLoaiNguoiDung,LOAINGUOIDUNG.MaLoaiNguoiDung From NGUOIDUNG,LOAINGUOIDUNG Where NGUOIDUNG.MaLoaiNguoiDung=LOAINGUOIDUNG.MaLoaiNguoiDung and NGUOIDUNG.MaLoaiNguoiDung=6";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        // cập nhật thông tin người dùng
        public static void CapNhatDayDuThongTinNguoiDung(CNGUOIDUNGDTO nguoidungDto)
        {
            OleDbConnection cn;
            cn = CNGUOIDUNGDAO.ConnectionData();
            String strSQL = "UPDATE NGUOIDUNG SET TenDangNhap=?,MatKhau=?,TenNguoiDung=?,NgaySinh=?,CMND=?,DiaChi=?,DienThoai=?,GioiTinh=?,TinhTrang=?,MaLoaiNguoiDung=? WHERE  (MaNguoiDung = ?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);
            cmd.Parameters.Add("@MatKhau", OleDbType.WChar);
            cmd.Parameters.Add("@TenNguoiDung", OleDbType.WChar);
            cmd.Parameters.Add("@NgaySinh", OleDbType.Date);
            cmd.Parameters.Add("@CMND", OleDbType.WChar);
            cmd.Parameters.Add("@DiaChi", OleDbType.WChar);
            cmd.Parameters.Add("@DienThoai", OleDbType.WChar);
            cmd.Parameters.Add("@GioiTinh", OleDbType.WChar);
            cmd.Parameters.Add("@TinhTrang", OleDbType.Boolean);
            cmd.Parameters.Add("@MaLoaiNguoiDung", OleDbType.Integer);
            cmd.Parameters.Add("@MaNguoiDung", OleDbType.Integer);
            cmd.Parameters[0].Value = nguoidungDto.TenDangNhap;
            cmd.Parameters[1].Value = nguoidungDto.MatKhau;
            cmd.Parameters[2].Value = nguoidungDto.TenNguoiDung;
            cmd.Parameters[3].Value = nguoidungDto.NgaySinh;
            cmd.Parameters[4].Value = nguoidungDto.CMND;
            cmd.Parameters[5].Value = nguoidungDto.DiaChi;
            cmd.Parameters[6].Value = nguoidungDto.DienThoai;
            cmd.Parameters[7].Value = nguoidungDto.GioiTinh;
            cmd.Parameters[8].Value = nguoidungDto.TinhTrang;
            cmd.Parameters[9].Value = nguoidungDto.MaLoaiNguoiDung;
            cmd.Parameters[10].Value = nguoidungDto.MaNguoiDung;
            cmd.ExecuteNonQuery();
            cn.Close();
        }


        // Hàm lấy danh sách tất cả người dùng
        public static List<CNGUOIDUNGDTO> LayDanhSachNguoiDung()
        {
            List<CNGUOIDUNGDTO> ds = new List<CNGUOIDUNGDTO>();
            OleDbConnection cn = new OleDbConnection();
            cn = CNGUOIDUNGDAO.ConnectionData();
            String strSQL = "Select * From NGUOIDUNG";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                CNGUOIDUNGDTO nguoidungDto = new CNGUOIDUNGDTO();
                nguoidungDto.MaNguoiDung = int.Parse(myReader[0].ToString());
                nguoidungDto.TenDangNhap = myReader[1].ToString();
                nguoidungDto.MatKhau = myReader[2].ToString();
                nguoidungDto.TenNguoiDung = myReader[3].ToString();
                nguoidungDto.NgaySinh = DateTime.Parse(myReader[4].ToString());
                nguoidungDto.CMND = myReader[5].ToString();
                nguoidungDto.DiaChi = myReader[6].ToString();
                nguoidungDto.DienThoai = myReader[7].ToString();
                nguoidungDto.GioiTinh = myReader[8].ToString();
                nguoidungDto.TinhTrang = bool.Parse(myReader[9].ToString());
                nguoidungDto.MaLoaiNguoiDung = int.Parse(myReader[10].ToString());
                ds.Add(nguoidungDto);
            }
            myReader.Close();
            cn.Close();
            return ds;
        }
        //Thêm người dùng
        public void ThemNguoiDung(CNGUOIDUNGDTO nguoidungDto)
        {
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CNGUOIDUNGDAO.ConnectionData();
            String strSQL = "Insert into NGUOIDUNG(TenDangNhap,MatKhau,TenNguoiDung,NgaySinh,CMND,DiaChi,DienThoai,GioiTinh,TinhTrang,MaLoaiNguoiDung) values (?,?,?,?,?,?,?,?,?,?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);

            cmd.Parameters.Add("@TenDangNhap", OleDbType.WChar);
            cmd.Parameters.Add("@MatKhau", OleDbType.WChar);
            cmd.Parameters.Add("@TenNguoiDung", OleDbType.WChar);
            cmd.Parameters.Add("@NgaySinh", OleDbType.Date);
            cmd.Parameters.Add("@CMND", OleDbType.WChar);
            cmd.Parameters.Add("@DiaChi", OleDbType.WChar);
            cmd.Parameters.Add("@DienThoai", OleDbType.WChar);
            cmd.Parameters.Add("@GioiTinh", OleDbType.WChar);
            cmd.Parameters.Add("@TinhTrang", OleDbType.Boolean);
            cmd.Parameters.Add("@MaLoaiNguoiDung", OleDbType.Integer);
            cmd.Parameters[0].Value = nguoidungDto.TenDangNhap;
            cmd.Parameters[1].Value = nguoidungDto.MatKhau;
            cmd.Parameters[2].Value = nguoidungDto.TenNguoiDung;
            cmd.Parameters[3].Value = nguoidungDto.NgaySinh;
            cmd.Parameters[4].Value = nguoidungDto.CMND;
            cmd.Parameters[5].Value = nguoidungDto.DiaChi;
            cmd.Parameters[6].Value = nguoidungDto.DienThoai;
            cmd.Parameters[7].Value = nguoidungDto.GioiTinh;
            cmd.Parameters[8].Value = nguoidungDto.TinhTrang;
            cmd.Parameters[9].Value = nguoidungDto.MaLoaiNguoiDung;
            cmd.ExecuteNonQuery();
            //strSQL = "Select @@IDENTITY";
            ////cmd = new OleDbCommand(strSQL, cn);
            ////lndDto.MaLoaiNguoiDung = (int)cmd.ExecuteScalar();
            cn.Close();
        }

        ///////
    }
}
